/*Copyright (C) 2009 Careil Baptiste

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
//
///////////////////////////////////////////////////////////
/// \file Cursor.h Ce fichier contient les fonctions affectant 
/// la position du curseur.
///////////////////////////////////////////////////////////
#ifndef CURSOR_HEADER
#define CURSOR_HEADER

#include "dll.h"

#ifdef __cplusplus
extern "C" {
#endif

///////////////////////////////////////////////////////////
/// Permet de choisir la direction du déplacement du curseur
///
/// \sa CSLP_MoveCursor()
///////////////////////////////////////////////////////////
typedef enum CSLP_WAY {
	FORWARD,
	BACKWARD,
	DOWN,
	UP
} CSLP_WAY;

///////////////////////////////////////////////////////////
/// Permet de placer le curseur en début de ligne.
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_GotoBeginOfLine();

///////////////////////////////////////////////////////////
/// Permet de placer le curseur à la ligne précédente
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_GotoPreviousLine();

///////////////////////////////////////////////////////////
/// Permet de placer le curseur à la ligne suivante
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_GotoNextLine();

///////////////////////////////////////////////////////////
/// Permet de placer le curseur aux coordonnées voulus. \n
/// L'origine de la console est pris dans le coin en haut à gauche.
///
/// \param r La ligne où placer le curseur
/// \param c La colonne où placer le curseur
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_Goto(int r, int c);

///////////////////////////////////////////////////////////
/// Permet de déplacer le curseur dans la direction voulue
///
/// \param way Une valeur de l'énumération CSLP_WAY indiquand le
/// sens de déplacement du curseur.
/// \param value Le nombre de case dont doit se déplacer le curseur.
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_MoveCursor(CSLP_WAY way, unsigned int value);

///////////////////////////////////////////////////////////
/// Permet de sauvegarder la position courante du curseur
///
/// \sa CSLP_RestorePos()
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_SavePos();

///////////////////////////////////////////////////////////
/// Permet de restaurer la position du curseur
///
/// \sa CSLP_SavePos()
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_RestorePos();

#ifdef __cplusplus
}
#endif

#endif
